3 research outputs found

    STaRS: A scalable task routing approach to distributed scheduling

    Get PDF
    La planificaci贸n de muchas tareas en entornos de millones de nodos no confiables representa un gran reto. Las plataformas de computaci贸n m谩s conocidas normalmente conf铆an en poder gestionar en un elemento centralizado todo el estado tanto de los nodos como de las aplicaciones. Esto limita su escalabilidad y capacidad para tolerar fallos. Un modelo descentralizado puede superar estos problemas pero, por lo que sabemos, ninguna soluci贸n propuesta hasta el momento ofrece resultados satisfactorios. En esta tesis, presentamos un modelo de planificaci贸n descentralizado con tres objetivos: que escale hasta millones de nodos, sin una p茅rdida de prestaciones que lo inhabilite; que tolere altas tasas de fallos; y que permita la implementaci贸n de varias pol铆ticas de planificaci贸n para diferentes situaciones. Nuestra propuesta consta de tres elementos principales: un modelo de datos gen茅rico para representar la disponibilidad de los nodos de ejecuci贸n; un esquema de agregaci贸n que propaga esta informaci贸n por una capa de red jer谩rquica; y un algoritmo de reexpedici贸n que, usando la informaci贸n agregada, encamina tareas hacia los nodos de ejecuci贸n m谩s apropiados. Estos tres elementos son f谩cilmente extensibles para proporcionar diversas pol铆ticas de planificaci贸n. En concreto, nosotros hemos implementado cinco. Una pol铆tica que simplemente asigna tareas a nodos desocupados; una pol铆tica que minimiza el tiempo de finalizaci贸n del trabajo global; una pol铆tica que cumple con los requerimientos de fecha l铆mite de aplicaciones tipo "saco de tareas"; una pol铆tica que cumple con los requerimientos de fecha l铆mite de aplicaciones tipo "workflow"; y una pol铆tica que otorga una porci贸n equitativa de la plataforma a cada aplicaci贸n. La escalabilidad se consigue a trav茅s del esquema de agregaci贸n, que provee de suficiente informaci贸n de disponibilidad a los niveles altos de la jerarqu铆a sin inundarlos, y el algoritmo de reexpedici贸n, que busca nodos de ejecuci贸n en varias ramas de la jerarqu铆a de manera concurrente. Como consecuencia, los costes de comunicaci贸n est谩n acotados y los de asignaci贸n muestran un comportamiento casi logar铆tmico con el tama帽o del sistema. Un millar de tareas se asignan en una red de 100.000 nodos en menos de 3,5 segundos, as铆 que podemos plantearnos utilizar nuestro modelo incluso con tareas de tan solo unos minutos de duraci贸n. Por lo que sabemos, ning煤n trabajo similar ha sido probado con m谩s de 10.000 nodos. Los fallos se gestionan con una estrategia de mejor esfuerzo. Cuando se detecta el fallo de un nodo, las tareas que estaba ejecutando son reenviadas por sus propietarios y la informaci贸n de disponibilidad que gestionaba es reconstruida por sus vecinos. De esta manera, nuestro modelo es capaz de degradar sus prestaciones de manera proporcional al n煤mero de nodos fallidos y recuperar toda su funcionalidad. Para demostrarlo, hemos realizado pruebas de tasa media de fallos y de fallos catastr贸ficos. Incluso con nodos fallando con un periodo mediano de solo 5 minutos, nuestro planificador es capaz de continuar dando servicio. Al mismo tiempo, es capaz de recuperarse del fallo de una fracci贸n importante de los nodos, siempre que la capa de red jer谩rquico que sustenta el sistema pueda soportarlo. Despu茅s de comprobar que es factible implementar pol铆ticas con muy distintos objetivos usando nuestro modelo de planificaci贸n, tambi茅n hemos probado sus prestaciones. Hemos comparado cada pol铆tica con una versi贸n centralizada que tiene pleno conocimiento del estado de cada nodo de ejecuci贸n. El resultado es que tienen unas prestaciones cercanas a las de una implementaci贸n centralizada, incluso en entornos de gran escala y con altas tasas de fallo

    Dise帽o e implementaci贸n de un sistema din谩mico de gesti贸n de trabajos distribuidos en un entorno de m谩quinas virtuales

    Get PDF
    El objetivo del PFC es el dise帽o e implementaci贸n de un sistema de ejecuci贸n de trabajos distribuidos que integre de forma flexible el aprovisionamiento y asignaciones din谩micas de m谩quinas virtuales como nodos de ejecuci贸n en un conjunto de m谩quinas reales. Y tambi茅n el sometimiento y control de env铆o de trabajos distribuidos a un subconjunto escogido de nodos virtuales de ejecuci贸n

    Dise帽o e implementaci贸n de una capa de red P2P jer谩rquica, escalable y tolerante a fallos

    No full text
    Durante este proyecto se ha dise帽ado e implementado una capa de red peer-to-peer jer谩rquica, escalable y tolerante a fallos. Dicha capa es un medio que nos permite la distribuci贸n de la informaci贸n y la localizaci贸n de recursos a emplear por otras plataformas. Esta capa est谩 enmarcada en el desarrollo de una plataforma escalable para la ejecuci贸n distribuida de tareas. Se ha utilizado una estructura principal en forma de 谩rbol binario balanceado o AVL. Las b煤squedas en este tipo de 谩rboles tienen una complejidad que se mantiene siempre en orden logar铆tmico O(log n), por lo que es perfecta para cumplir el requisito de la escalabilidad. Otro punto fundamental es la tolerancia a fallos, en cuyo caso se resuelve utilizando una DHT como estructura paralela, donde se almacenar谩 la informaci贸n actualizada de todos los nodos de la red. En caso de fallo de un nodo, cualquier participante puede obtener la informaci贸n relativa a dicho nodo e iniciar el proceso de reconstrucci贸n que permite devolver a la red a un estado correcto. Entre las distintas opciones de DHT, se ha elegido Apache Cassandra y m谩s en concreto la librer铆a libQtCassandra, que es un cliente que proporciona una API para interaccionar con los nodos de Cassandra. En definitiva, se ha desarrollado un protocolo de comunicaci贸n totalmente distribuido, que permite trabajar de manera conjunta a la estructura en forma de 谩rbol y la DHT. El lenguaje utilizado es C++ por ser el lenguaje que se usa en la plataforma en la que este proyecto est谩 enmarcado. Para comprobar el buen funcionamiento, se ha utilizado un simulador de eventos discretos. Con el objetivo de comprobar la escalabilidad, se han simulado redes de tama帽os desde 10 nodos hasta 500.000 nodos. Posteriormente, se vuelven a simular los mismos tama帽os y adem谩s se introducen fallos de nodos f铆sicos aleatorios para comprobar la tolerancia a fallos. Una vez concluye la simulaci贸n, se comprueba el resultado por medio de pruebas de validaci贸n del estado de los participantes de la red. El resultado obtenido tras la realizaci贸n de todas las pruebas con el simulador es el correcto, con lo que se puede afirmar que la red se adapta perfectamente a cualquier tama帽o de red y adem谩s detecta los fallos que se producen para posteriormente reconstruir la red. Adem谩s se han obtenido medidas del consumo del ancho de banda de entrada y de salida obteniendo valores muy buenos y casi despreciables. Tambi茅n se ha medido el tiempo de inserci贸n de un nodo en la red y se puede concluir que para redes grandes de 100.000 nodos en adelante, el tiempo se estabiliza alrededor de 2,25 segundos, siendo un valor que se considera aceptable. Asimismo se ha ejecutado la aplicaci贸n en un grupo de ordenadores del laboratorio y se ha conseguido interconectarlos. La red se ha creado y funciona correctamente, por lo que la prueba en un escenario real tambi茅n es un 茅xito
    corecore